package com.ruoyi.erp.domain.bo;

import com.ruoyi.common.annotation.query.*;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 商品扩展业务对象 base_inventory_detail
 *
 * @author chenyun
 * @date 2022-03-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("商品扩展业务对象")
public class InventoryDetailBo extends BaseEntity {

    /**
     * 编号
     */
    @EQ
    @ApiModelProperty(value = "编号", required = true)
    @NotNull(message = "编号不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 商品编号
     */
    @EQ
    @ApiModelProperty(value = "商品编号", required = true)
    @NotNull(message = "商品编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long invId;

    /**
     * 条码
     */
    @EQ
    @ApiModelProperty(value = "条码", required = true)
    @NotBlank(message = "条码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String barCode;

    /**
     * 单位
     */
    @EQ
    @ApiModelProperty(value = "单位", required = true)
    @NotBlank(message = "单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String unitCode;

    /**
     * 多属性
     */
    @EQ
    @ApiModelProperty(value = "多属性", required = true)
    @NotBlank(message = "多属性不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sku;

    /**
     * 采购价
     */
    @EQ
    @ApiModelProperty(value = "采购价", required = true)
    @NotNull(message = "采购价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal phPrice;

    /**
     * 销售价
     */
    @EQ
    @ApiModelProperty(value = "销售价", required = true)
    @NotNull(message = "销售价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal saPrice;

    /**
     * 零售价
     */
    @EQ
    @ApiModelProperty(value = "零售价", required = true)
    @NotNull(message = "零售价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal retailPrice;

    /**
     * 标准成本
     */
    @EQ
    @ApiModelProperty(value = "标准成本", required = true)
    @NotNull(message = "标准成本不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal normalCost;

    /**
     * 最新成本
     */
    @EQ
    @ApiModelProperty(value = "最新成本", required = true)
    @NotNull(message = "最新成本不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal newCost;

    /**
     * 采购价上限
     */
    @EQ
    @ApiModelProperty(value = "采购价上限", required = true)
    @NotNull(message = "采购价上限不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal phLimitPrice;

    /**
     * 销售价下限
     */
    @EQ
    @ApiModelProperty(value = "销售价下限", required = true)
    @NotNull(message = "销售价下限不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal saLimitPrice;

    /**
     * 安全库存数
     */
    @EQ
    @ApiModelProperty(value = "安全库存数", required = true)
    @NotNull(message = "安全库存数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long safeNum;

    /**
     * 库存上限
     */
    @EQ
    @ApiModelProperty(value = "库存上限", required = true)
    @NotNull(message = "库存上限不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long maxNum;

    /**
     * 库存下限
     */
    @EQ
    @ApiModelProperty(value = "库存下限", required = true)
    @NotNull(message = "库存下限不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long minNum;

    /**
     * 机构id
     */
    @EQ
    @ApiModelProperty(value = "机构id", required = true)
    @NotNull(message = "机构id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long orgId;

    /**
     * 状态（0正常 1停用）
     */
    @EQ
    @ApiModelProperty(value = "状态（0正常 1停用）", required = true)
    @NotBlank(message = "状态（0正常 1停用）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String status;

    /**
     * 备注
     */
    @EQ
    @ApiModelProperty(value = "备注", required = true)
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
